------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
C++中可用的输入输出方法大概分为三类。
第一类:C标准库中的输入输出
(<cstdio>或<stdio.h>)
1. 最通用的:scanf&printf
用法:scanf("…",…); / printf("…",…);
优点:方便格式化,代码较为简洁,速度中等;
缺点:需要手写匹配格式符;
注意事项:scanf记得加取地址符&!!!
2. 对字符:getchar&putchar
用法:char c=getchar(); / putchar(char);
优点:速度中上,较快;
缺点:只能处理单个字符;
注意事项:若读取/输出失败会返回EOF(-1)。
3. 对字符串:gets&puts
用法:gets已废除,puts("…");
优点:会在输出后自动增加一个换行符;
缺点:不清楚;
注意事项:会自动增加一个换行符!!!
第二类:C++流式的输入输出
(<iostream>)
1. 标准输入输出流:cin&cout
用法:cin>>…>>……; / cout<<…<<……;
优点:相较于scanf&printf而言类型更安全简洁;
缺点:速度中等偏下,带缓冲;
注意事项:如果数据较大可以加上:
2. 标准错误流/日志流:cerr/clog
用法:与cout类似;
优点:cerr无缓冲,立即输出信息,程序崩溃数据不丢失,适用于调试;clog与cout类似;
缺点:cerr速度慢;clog与cout类似;
注意事项:无。
3. 其他:cin.getline
用法:cin.getline(char* s,streamsize n); / cin.getline(char* s,streamsize n,char delim);
解释:第一种,传入一个字符串和输入长度(含义:最多读入n-1个字符,最好填),默认读到换行符停止;第二种,增加了一个char delim,指的是读到delim就停止;
优点:可以读入空格,自定义分隔符;
缺点:不清楚;
注意事项:不能用于string!!!只能用于字符数组!!!
附:getline,可以用于string,用法:getline(istream& is,string& str); / getline(istream& is,string& str,char delim);
这里的istream& is一般情况下填cin就可以。
第三类:神之——手写快读快写
手写快读快写一般有基于getchar/putchar和基于fread/fwrite这两种类型。
不过,我 是 不 会 在 这 里 贴 出 代 码 的!!!!!!!!!!!!
想要代码,让AI给你写去吧,哈哈哈哈哈哈哈哈哈哈哈哈哈!!!!!!
还有,别骂我疯了……
附:一些与输入输出有关又无关的东西
1. C++ 23-print!
没错,你没听错!就是C++!就叫print!你可没误入Python!
但是我在这里不想讲了,所以你自己去查吧,哈哈……
2. C++ 20-format
跟print很有关系,具体的你也自己去查吧……
3. (这个真没关系)关于你在Windows上看到的返回值
你有没有和我一样的经历:运行代码,结果啥也没输出,反倒返回了一个什么……3221225477(0xC0000005)?
这,就是Windows系统的错误码之一,它的含义是:访问冲突,即段错误。就是指程序试图读写没有权限的内存,例如数组越界。
Windows还有一些其它的错误码,例如:
3221225620(0xC0000094),表示整数除零异常;
3221225725(0xC00000FD),表示栈溢出异常。
然后就没有然后了,拜拜!